package com.dkm.ec.activity.adaptor;

import com.dkm.biz.gl.exception.PartinException;
import com.dkm.ec.activity.domain.CommonActivitySku;
import com.dkm.ec.activity.domain.LimitBuyActivitySku;
import com.dkm.ec.activity.domain.SecSkillActivitySku;
import com.dkm.ec.so.persistence.entity.SoItemPo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * Created by fanjinyuan on 2017/8/16.
 */
@Service
public class ActivitySkuAdaptor {
	
    @Autowired
    private CommonActivitySku commonActivitySkuService;
    @Autowired
    private LimitBuyActivitySku limitBuyActivitySkuService;
    @Autowired
    private SecSkillActivitySku secSkillActivitySkuService;


    /**
     * 减库存
     * @param soItemPo
     */
    public void reduceStock(SoItemPo soItemPo){
        String activityType = soItemPo.getActivityType();
        switch(activityType){
            case "1":
                secSkillActivitySkuService.deduct(soItemPo);
                break;
            case "2":
                limitBuyActivitySkuService.deduct(soItemPo);
                break;
            case "3":
                commonActivitySkuService.deduct(soItemPo);
                break;
            case "4":
                commonActivitySkuService.deduct(soItemPo);
                break;
            case "5":
                commonActivitySkuService.deduct(soItemPo);
                break;
            default:
                throw new PartinException("Unsupported activity type");
        }

    }


    /**
     * 归还库存
     * @param soItemPo
     */
    public void returnStock(SoItemPo soItemPo){
        String activityType = soItemPo.getActivityType();
        switch(activityType){
            case "1":
                secSkillActivitySkuService.sendBack(soItemPo);
                break;
            case "2":
                limitBuyActivitySkuService.sendBack(soItemPo);
                break;
            case "3":
                commonActivitySkuService.sendBack(soItemPo);
                break;
            case "4":
                commonActivitySkuService.sendBack(soItemPo);
                break;
            case "5":
                commonActivitySkuService.sendBack(soItemPo);
                break;
            default:
                throw new PartinException("Unsupported activity type");
        }
    }





}
